package model

import (
	"database/sql/driver"
	"encoding/json"
	"gorm.io/gorm"
	"time"
)

// GoodsDetail 自定义数据类型
type GoodsDetail struct {
	Goods int32
	Num   int32
}

type GoodsDetailList []GoodsDetail

// Scan 以 json 二进制格式 序列化
func (g *GoodsDetailList) Scan(value interface{}) error {
	return json.Unmarshal(value.([]byte), &g)
}

// Value 以json二进制格式 反序列化 保存到数据库中
func (g GoodsDetailList) Value() (driver.Value, error) {
	return json.Marshal(g)
}

type BaseModel struct {
	ID        int32          `gorm:"primarykey;type:int comment 'ID'" json:"id"`
	CreatedAt time.Time      `gorm:"column:add_time;type:datetime comment '创建时间'" json:"-"`
	UpdatedAt time.Time      `gorm:"column:update_time;type:datetime comment '更新时间'" json:"-"`
	DeletedAt gorm.DeletedAt `gorm:"type:datetime comment '删除时间'" json:"-"`
	IsDeleted bool           `json:"-"`
}
